import { RequestBody } from 'alova';

import ApiClient from '@/api/apiClient';

export interface AllApplyType {
	/** 是否定向申请 */
	isDirectional?: number;
	/**
	 * 申请日期
	 */
	applicationDate?: string;
	/**
	 * 申请机构联系人
	 */
	applicationEnterpriseContacts?: string;
	/**
	 * 申请机构ID
	 */
	applicationEnterpriseId?: number;
	/**
	 * 申请机构联系电话
	 */
	applicationEnterprisePhone?: string;
	/**
	 * 认证区域
	 */
	certificationArea?: string;
	/**
	 * 认证大类
	 */
	certificationCategory?: string;
	/**
	 * 认证机构ID
	 */
	certificationEnterpriseId?: number;
	/**
	 * 认证项目
	 */
	certificationProject?: string;
	/**
	 * 认证标准
	 */
	certificationStandard?: string;
	/**
	 * 认证标准号
	 */
	certificationStandardCode?: string;
	/**
	 * 认证小类
	 */
	certificationSubclass?: string;
	/**
	 * 申请号
	 */
	code?: string;
	/**
	 * 创建人
	 */
	createBy?: string;
	/**
	 * 创建人id
	 */
	createId?: number;
	/**
	 * 创建时间
	 */
	createTime?: string;
	/**
	 * 主键
	 */
	id?: number;
	/**
	 * 是否逻辑删除，0否,其他是
	 */
	isDelete?: number;
	/**
	 * 认证需求描述
	 */
	remark?: string;
	/**
	 * 状态0待接收 1已接收 2已撤销
	 */
	status?: number;
	/**
	 * 租户编码
	 */
	tenantCode?: number;
	/**
	 * 修改人
	 */
	updateBy?: string;
	/**
	 * 修改人id
	 */
	updateId?: number;
	/**
	 * 更新时间
	 */
	updateTime?: string;
	/**
	 * 乐观锁版本号
	 */
	version?: number;
	[property: string]: any;
}

/** 认证申请-列表 */
export const serviceAllApplyListApi = (data: RequestBody) => {
	return ApiClient.Post<API.ListType<AllApplyType>>('/certificationApplication/page', data, {
		meta: {
			auth: true
		}
	});
};

/** 认证申请-增与编辑 */
export const serviceAllApplySaveOrUpdateApi = (data: RequestBody) => {
	return ApiClient.Post('/certificationApplication/saveOrUpdate', data);
};

/** 申请状态变更 */
export const serviceAllApplyConfirmApi = (data: RequestBody) => {
	return ApiClient.Get('/certificationApplication/confirm', { params: data });
};

/** 认证申请-详情 */
export const serviceAllApplyDetailApi = (data: Merged<RequestBody, { id: number }>) => {
	return ApiClient.Get<AllApplyType>(`/certificationApplication/get/${data.id}`);
};
